newtype Identity a = Identity { runIdentity :: a }
instance (Show a) => Show (Identity a) where
    showsPrec d (Identity x) =
        showParen (d > 10) $ showString "Identity " . showsPrec 11 x
